home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / edit / stevi69x.zip / SETENV.DOC < prev    next >
Text File  |  1990-04-24  |  2KB  |  57 lines

  1. A program for adding or changing environment variable values for MSDOS.
  2. The "set" command provided by command.com is very limited.  It fails to
  3. provide the ability to use quotation marks and escape characters and
  4. octal/hex constants in the value definition.  Setenv provides these
  5. abilities.
  6.  
  7. Usage notes:
  8.  
  9.     setenv <symbol> = <value>
  10.  
  11.     <symbol> ::= legal MSDOS environment symbol.  Lower case converted
  12.              to uppercase.
  13.  
  14.     <value>  ::= environment symbol value in one of three forms:
  15.  
  16.          * No quotation marks.  The value is the literal string
  17.            of characters starting IMMEDIATELY after the equal
  18.            sign and extending to the end-of-line.
  19.  
  20.          * Single quotation marks (').  The value is the literal
  21.            string enclosed in quotation marks.
  22.  
  23.          * Double quotation marks (").  The value is the string
  24.            enclosed in double quotation marks.  Backslash escape
  25.            constructions are processed -- this includes the usual
  26.            C language constructions such as \n for newline and
  27.            \r for carriage return plus octal and hexadecimal
  28.            constants (\ddd & \0xdd, respectively).
  29.  
  30. Based on a program by Alan J Myrvold (ajmyrvold@violet.waterloo.edu)
  31.  
  32.  WARNING WARNING WARNING - virtually no error checking is done !!
  33.                            use at own risk !!
  34.  
  35. This program by Larry A. Shurr (las@cbema.ATT.COM)
  36.  
  37. I added checking for env seg overrun, so now it's a little more robust.
  38.  
  39. Notes by Alan J Myrgold:
  40.  
  41. Technical information : A program's PSP contains a pointer at
  42. offset 44 (decimal) to a COPY of the parent's environment.
  43. The environment is a set of strings of the form NAME=value,
  44. each terminated by a NULL byte.
  45. An additional NULL byte marks the end of the environment.
  46. The environment area is ALWAYS paragraph aligned
  47. i.e. on a 16 byte boundary.
  48.  
  49. Searching backwards from the PSP, I consistently find
  50. two copies of the envronment area.
  51.  
  52. The program : finds the two areas
  53.               reads one into memory
  54.               updates the specified environment variable
  55.               writes updated environment to parent environment
  56.  
  57.